5
תגובות
שימוש נכון בסינגלטון
פתח
OrelBeY
,
class user {
protected static $instance = null;
protected $user;
public static function getInstance($str = "default") {
if (self::$instance === null)
self::$instance = new self($str);
return self::$instance;
}
private function __construct($str) {
$this->str = $str;
}
private function __clone() { }
}
$user = user::getInstance(5);
var_dump($user);
unset($user);
$user2 = user::getInstance("Muhahaha");
var_dump($user2);
protected static $instance = null;
protected $user;
public static function getInstance($str = "default") {
if (self::$instance === null)
self::$instance = new self($str);
return self::$instance;
}
private function __construct($str) {
$this->str = $str;
}
private function __clone() { }
}
$user = user::getInstance(5);
var_dump($user);
unset($user);
$user2 = user::getInstance("Muhahaha");
var_dump($user2);
הערך שהכנסתי לפונקציה ב-user2 לא נתפס באובייקט, מה שאומר שה-$instance לא שווה ל-null. איך אני הופך אותו ל-null ברגע שאני מסיים עם האובייקט הקודם?
5 תשובות
אתה לא עושה יוזר סינגלטון.
אתה עושה את החיבור למסד בלבד בתור סינגלטון.
יוזר != מסד
אתה לא רוצה :)
לצורך העניין תשכח בכלל ולתמיד מסינגלטונים. זה יוצר יותר בעיות בראש ובקוד מאשר שזה פותר
ומעכשיו והלאה אל תשמש בסינגלטונים. בכלל.